// Standards Mode && Quirks Mode  https://blog.csdn.net/free941122/article/details/81070197
// document.body 与 document.documentElement区别介绍 https://www.cnblogs.com/mrdooo/p/6633688.html
// https://www.cnblogs.com/fullhouse/archive/2012/01/17/2324706.html
// compatMode http://www.cnblogs.com/cq-shihao/p/4847008.html

// IE对盒模型的渲染在 Standards Mode(或:Strict mode)(标准模式)和Quirks Mode(兼容模式)是有很大差别的
// 在不声明Doctype IE默认Quirks Mode。
// document.compatMode 返回值 BackCompat和CSS1Compat

// BackCompat：标准兼容模式关闭。(兼容模式)
// CSS1Compat：标准兼容模式开启。(标准模式)

// ie9的HTML文档无论是否加上<!DOCTYPE html>,document.compatMode都是返回的CSS1Compat(标准模式)
// ie10的HTML文档没有<!DOCTYPE html>,document.compatMode都是返回的CSS1Compat(标准模式),
// ie10的HTML文档有<!DOCTYPE html>,document.compatMode都是返回的BackCompat(兼容模式),
// ie11的HTML文档没有<!DOCTYPE html>,document.compatMode都是返回的CSS1Compat(标准模式),
// ie11的HTML文档有<!DOCTYPE html>,document.compatMode都是返回的BackCompat(兼容模式),
//

// <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>

// 当document.compatMode等于BackCompat时，浏览器客户区宽度是document.body.clientWidth；
// 当document.compatMode等于CSS1Compat时，浏览器客户区宽度是document.documentElement.clientWidth。

// 一个准确获取网页客户区的宽高、滚动条宽高、滚动条Left和Top的代码：

if (document.compatMode == 'BackCompat') {
  cWidth = document.body.clientWidth;
  cHeight = document.body.clientHeight;
  sWidth = document.body.scrollWidth;
  sHeight = document.body.scrollHeight;
  sLeft = document.body.scrollLeft;
  sTop = document.body.scrollTop;
} else {
  //document.compatMode == "CSS1Compat"
  cWidth = document.documentElement.clientWidth;
  // 当前
  cHeight = document.documentElement.clientHeight;
  sWidth = document.documentElement.scrollWidth;
  // 当前页面高度
  sHeight = document.documentElement.scrollHeight;
  sLeft = document.documentElement.scrollLeft == 0 ? document.body.scrollLeft : document.documentElement.scrollLeft;
  // 当前滚动条的高度
  sTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop;
}

// 测试代码：

var cw1 = document.body.clientWidth;
var cw2 = document.documentElement.clientWidth;
var ch1 = document.body.clientHeight;
var ch2 = document.documentElement.clientHeight;
var sw1 = document.body.scrollWidth;
var sw2 = document.documentElement.scrollWidth;
var sh1 = document.body.scrollHeight;
var sh2 = document.documentElement.scrollHeight;
var st1 = document.body.scrollTop;
var st2 = document.documentElement.scrollTop;
var sl1 = document.body.scrollLeft;
var sl2 = document.documentElement.scrollLeft;
console.log(document.compatMode);
console.log(cw1 + ',' + cw2);
console.log(ch1 + ',' + ch2);
console.log(sw1 + ',' + sw2);
console.log(sh1 + ',' + sh2);
console.log(st1 + ',' + st2);
console.log(sl1 + ',' + sl2);

// className和class的区别？
// 简单来说，就是IE8之前的版本，需使用getAttribute('className')才能获得class属性的值，
// FF及IE8之后的版本则是W3C的标准getAttribute('class')。

JSAF.isBrowserIEInCompMode;
JSAF.windowViewX;
JSAF.windowViewY;
JSAF.windowViewWidth;
JSAF.windowViewHeight;
JSAF.windowViewHeight;
JSAF.currentEvent;
// JSAF.isBrowserIEInCompMode;
JSAF.isBrowserSupportXML;
JSAF.toInt;
JSAF.toPixel;

JSAF.isBrowserIEInCompMode = function() {
  return JSAF.getIEVersion() > 0 && JSAF.getIEVersion() < 10;
};

JSAF.isBrowserIEInCompMode = function() {
  if (JSAF.getIEVersion() === 9) {
    return false;
  } else {
    if (JSAF.getIEVersion() > 0 && JSAF.getIEVersion() < 10) {
    }
  }

  if (window.document.compatMode === 'BackCompat') {
  }
  if (JSAF.getIEVersion() > 0 && JSAF.getIEVersion() < 10) {
  }
  return JSAF.getIEVersion() > 0 && JSAF.getIEVersion() < 10;
};
